package cn.csxw.openchina.ui.activity;

import android.content.Intent;
import android.os.Bundle;
import android.os.Vibrator;
import android.view.View;
import android.widget.TextView;

import butterknife.BindView;
import butterknife.ButterKnife;
import cn.bingoogolapple.qrcode.core.QRCodeView;
import cn.bingoogolapple.qrcode.zxing.ZXingView;
import cn.csxw.openchina.R;
import cn.csxw.openchina.base.BaseActivity;
import cn.csxw.openchina.utils.Global;
import cn.csxw.openchina.utils.L;

/**
 * Delegate接口是处理扫描结果的一个类，有失败和成功2种结果，
 * 实现这个接口可以进行扫描结果的处理，
 * 跟网络访问的回调一样
 */
public class ScanActivity extends BaseActivity implements QRCodeView.Delegate {
    @BindView(R.id.zxingview)
    QRCodeView mQRCodeView;
    private Vibrator mVibrator;

    @Override//成功的方法
    public void onScanQRCodeSuccess(String result) {
        if (result.contains("csdn.net")) {
            //  startWebViewForResult(result, true, "", IntentKey.BACK);
            //扫码成功时候添加震动:
            vibrate();
        }
        mQRCodeView.startCamera();
        mQRCodeView.startSpot();
    }

    //扫码成功时候添加震动:
    private void vibrate() {
        long[] arr = new long[]{200, 500, 800, 500};
        //如果不想持续震动给个-1
        mVibrator.vibrate(arr, -1);
    }

    @Override//失败的方法
    public void onScanQRCodeOpenCameraError() {
        L.d("相机打开错误");
    }

    @Override
    public int getLayoutRes() {
        return R.layout.activity_scan;
    }
    @Override
    public void initView() {
        //这个参数是一个Delegate接口，已经在本类实现了，也可以在这里进行实现
        mQRCodeView.setResultHandler(this);

    }

    @Override
    protected void onStart() {
        super.onStart();
        mVibrator = (Vibrator) getSystemService(VIBRATOR_SERVICE);
        //因为有时候会出现黑屏（没开启相机），或者没有出现扫描框（相机开了），以及
        //后台运行时再倒回前台运行时是否正常扫描（根据产品需求而定）的问题，会非常棘手
  /*      mQRCodeView.startSpot();*/

        mQRCodeView.startCamera();

/*        mQRCodeView.showScanRect();*/
        mQRCodeView.startSpotAndShowRect();
    }

    @Override
    protected void onStop() {
        super.onStop();
        if (mVibrator != null) {
            mVibrator.cancel();
            mVibrator = null;
        }
/*        mQRCodeView.stopSpotAndHiddenRect();*/
        mQRCodeView.stopCamera();

    }
    /////////////


    @Override
    public void initListener() {

    }

    @Override
    public void initData() {

    }

    @Override
    public void onClick(View v, int id) {

    }

}
